<?php

namespace App\Common\Lib\Fun;

use App\Common as com;

class Dir_ {

	/**
	 * 检查目录是否存在，不存在则创建
	 * @param str $dir 要创建的目录
	 * @return int [0]创建失败 [1]创建成功
	 */
	public static function checkNotExistCreate( $dir ) {
		if( file_exists( $dir ) ) return 1;
		return mkdir( $dir, 755, true );
	}

	/**
	 * 获取文件目录列表
	 * @param string $pathname
	 * @return array 目录列表（不包含当前路径）
	 */
	public static function getDirLists( string $pathname, bool $attachPath = false ):array {
		$lists = self::getFileFolderList( $pathname, 1 );
		if( $attachPath ){
			$pathname = rtrim( $pathname, DIRECTORY_SEPARATOR );
			foreach( $lists as &$listValue ){
				$listValue = $pathname . DIRECTORY_SEPARATOR . $listValue;
			} unset( $listValue );
		}
		//
		return $lists;
	}

	/**
	 * 获取文件目录列表
	 * @param string $pathname 路径
	 * @param int $fileFlag 文件列表 [0][默认]所有文件列表 [1]文件夹 [2]文件(不包含文件夹)
	 * @param string $pattern 附加文件路径
	 * @return array 目录列表（不包含当前路径）
	 */
	public static function getFileFolderList( string $pathname, int $fileFlag = 0, string $pattern = '*' ):array {
		$fileArray = array();
		$pathname = rtrim( $pathname, '/' ) . '/';
		$list = glob( $pathname . $pattern );
		foreach ( $list as $i => $file ) {
			switch ( $fileFlag ) {
				case 0:
					$fileArray[] = basename( $file );
					break;
				case 1:
					if( is_dir( $file ) ){
						$fileArray[] = basename( $file );
					}
					break;
				case 2:
					if( is_file( $file ) ){
						$fileArray[] = basename( $file );
					}
					break;
				default:
					break;
			}
		}

		if( empty( $fileArray ) ) $fileArray = NULL;
		return $fileArray;
	}
}
